/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufpr.inf.escel.brain.model.po;

import br.ufpr.inf.escel.brain.util.StringUtils;
import java.util.Random;

/**
 * Essa classe é destinada a trabalhar com os parametros
 * que são passados por referencias e tradados como enums
 * ex: s.swap(II) -> II
 * @author gustavo
 */
public class Referencias {

    /** valor que fica entre parentese */
    private String referencias;
    private int tamanho;
    private Random random = new Random();

    public Referencias(String referencia) {
        this.referencias = referencia;
        this.tamanho = referencia.length();
    }

    public char getRef(int i) {
        return referencias.charAt(i);
    }

    /**
     * Gera um novo valor pra cada tipo de dado
     * @param tipo de dados
     * @return novo valor gerado
     * @since 4.5
     */
    public Parametro gerarBlocoPorTipo(char tipo) {
        Object out = null;
        switch (tipo) {
            case 'I':
                out = random.nextInt(100);
                break;
            case 'S':
                out = StringUtils.gerarTipoString();
                break;
            case 'F':
                out = random.nextFloat() * 100;
                break;
            case 'C':
                out = StringUtils.gerarTipoChar();
                break;
            case 'O':
                out = "x";
                break;
            default:
                return null;
        }
        String valor = String.valueOf(out);

        return new Parametro(valor, 0);
    }
}
